#include<iostream>

using namespace std;
typedef long long ll;
const int N=1e6+10;

int n;
int p[N],cnt;
bool st[N];
int sum[N];
void get_prime()
{
	for(int i=2;i<=n;i++)
	{
		if(!st[i]) p[cnt++]=i;
		for(int j=0;1ll*p[j]*i<=n;j++)
		{
			st[p[j]*i]=true;
			if(i%p[j]==0) break;
		}
	}
}
int main()
{
	cin>>n;
	get_prime();
	for(int i=0;i<cnt;i++)
	{
		int s=0;
		for(ll j=p[i];j<=n;j*=p[i])
		{
			s+=n/j;
		}
		cout<<p[i]<<" "<<s<<endl;
	}
}